#ifndef WRCPROXYLOCAL_H
#define WRCPROXYLOCAL_H

#include <ipcomm/UdpClient.h>
#include "WrcProxyTypes.h"
#include <QUdpSocket>

namespace varayoc
{
namespace wrcproxy
{
namespace runnable
{

class WrcProxyLocal
{
private:
    WrcProxyLocal();
    Void initSocket();
    Void processTheDatagram(QByteArray datagram);

    varayoc::ipcomm::UdpClient_ptr m_udpClient;
    QUdpSocket *m_udpServer;
    Bool    m_running;                          ///< flag para continuar con el evento ciclico

    void readPendingDatagrams();
public:
    ///   \brief   Crea un puntero inteligente de tipo WrcProxyLocal.
    ///            Metodo estatico que crea una instancia a la clase WrcProxyLocal.
    ///   \return  Retorna un puntero inteligente de tipo WrcProxyLocal.
    static   WrcProxyLocal_ptr   create();
    virtual ~WrcProxyLocal();

    virtual Bool startWrcProxyLocal();
    virtual Void stopWrcProxyLocal();
};

}}}

#endif // WRCPROXYLOCAL_H
